玩了十幾天內建節點,大家可能會發現:一般拉拉積木、搬移欄位確實很爽,但偶爾遇到棘手的情況就很尷尬。比如想把一串逗號分隔的標籤拆成陣列、想把奇怪的時間格式做時區加減算,或是要在兩層巢狀物件裡挖出某個深層數值。硬用預設元件去轉往往要串好幾個節點,畫面變得亂七八糟。這時候,直接在流程裡塞一個 Code 節點寫幾行程式碼,反而俐落百倍。
Code 節點在幹嘛?
說白了,Code 節點就是 n8n 留給我們的自由發揮空間。它支援直接跑原生 JavaScript(也可以切換成 Python)。上游節點傳進來的資料會自動打包成一個輸入陣列,我們只要在裡面用最直覺的程式語法把資料切一切、算一算,最後回傳一個乾淨的物件清單,下游節點就能直接拿著算好的結果繼續跑。
模式選擇:單筆處理還是整批通吞
點進 Code 節點,最上面有兩種執行模式可以選,這點非常關鍵:
第一種是「Run Once for Each Item」,如果上游傳進來十筆資料,它會自動幫你跑十次迴圈,你只要專心寫針對單一筆資料的轉換邏輯就行。
第二種是「Run Once for All Items」,節點只執行一次,整批資料會以陣列的形式一次塞給你。當你想做陣列排序(Sort)、資料分組(Group By)、去重複項,或是把所有金額加總成一個數字時,就一定要切到這個模式處理。
實戰常見情境:文字清理與資料計算
舉個最普遍的例子:昨天表單送進來的消費備註,使用者可能輸入了帶有雜訊的字串(比如多了前後空格或全形符號),金額欄位可能還被填成了帶有錢字號的文字。在 Code 節點裡,我們只要寫一行文字清理語法,去掉多餘空白,再把錢字號拿掉轉成純數字,甚至順便根據消費金額自動算上營業稅或折算成美金匯率,短短三四行就把又臭又長的資料整理妥當。
回傳格式的小規矩
用 Code 節點最容易踩的坑就是回傳格式。n8n 有個硬性規定:最後回傳出來的資料,必須是一個陣列,而且陣列裡面的每一個元素都必須是一個物件,通常資料會放在名為 json 的屬性裡面。只要記得遵守這個輸出形狀,節點就不會報錯,下游元件也能順利抓到裡面的各個新欄位。
不用把寫程式想得太可怕,我們不是要從頭造輪子,而是把 Code 節點當成多功能萬用瑞士刀。哪裡卡關就在哪裡補兩行,把雜亂無章的原始資料整理得服服貼貼。明天我們要結合大語言模型,做一個能幫信箱分類打標、甚至自動草擬回信的 AI 智慧郵件助手。